Skip to content

Conversation

@rithikanarayan
Copy link
Contributor

Summary of changes

Reason for change

Implementation details

Test coverage

Other details

@datadog-official

This comment has been minimized.

@dd-trace-dotnet-ci-bot
Copy link

dd-trace-dotnet-ci-bot bot commented Nov 10, 2025

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (7798) and master.

✅ No regressions detected - check the details below

Full Metrics Comparison

FakeDbCommand

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration75.22 ± (75.15 - 75.86) ms74.92 ± (74.90 - 75.47) ms-0.4%
.NET Framework 4.8 - Bailout
duration80.06 ± (79.58 - 80.22) ms80.99 ± (80.56 - 81.34) ms+1.2%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1118.43 ± (1129.24 - 1142.19) ms1139.39 ± (1140.14 - 1151.58) ms+1.9%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms22.96 ± (22.88 - 23.03) ms23.16 ± (23.07 - 23.24) ms+0.9%✅⬆️
process.time_to_main_ms87.75 ± (87.42 - 88.08) ms90.54 ± (90.01 - 91.08) ms+3.2%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.92 ± (10.91 - 10.92) MB10.91 ± (10.91 - 10.91) MB-0.0%
runtime.dotnet.threads.count12 ± (12 - 12)12 ± (12 - 12)+0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms22.70 ± (22.63 - 22.76) ms22.90 ± (22.84 - 22.96) ms+0.9%✅⬆️
process.time_to_main_ms87.84 ± (87.47 - 88.21) ms90.81 ± (90.38 - 91.23) ms+3.4%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.95 ± (10.95 - 10.95) MB10.95 ± (10.95 - 10.95) MB-0.0%
runtime.dotnet.threads.count13 ± (13 - 13)13 ± (13 - 13)+0.0%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms221.55 ± (220.20 - 222.90) ms223.84 ± (222.54 - 225.14) ms+1.0%✅⬆️
process.time_to_main_ms547.70 ± (546.57 - 548.84) ms557.64 ± (556.15 - 559.13) ms+1.8%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed52.43 ± (52.41 - 52.45) MB52.47 ± (52.45 - 52.49) MB+0.1%✅⬆️
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.1%✅⬆️
.NET 6 - Baseline
process.internal_duration_ms21.78 ± (21.70 - 21.86) ms21.98 ± (21.90 - 22.05) ms+0.9%✅⬆️
process.time_to_main_ms75.98 ± (75.61 - 76.35) ms77.39 ± (76.96 - 77.82) ms+1.9%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.61 ± (10.61 - 10.62) MB10.63 ± (10.63 - 10.63) MB+0.1%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms21.72 ± (21.66 - 21.79) ms22.03 ± (21.96 - 22.09) ms+1.4%✅⬆️
process.time_to_main_ms76.85 ± (76.54 - 77.16) ms79.36 ± (78.96 - 79.77) ms+3.3%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.70 ± (10.69 - 10.70) MB10.73 ± (10.73 - 10.73) MB+0.3%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms207.66 ± (206.41 - 208.92) ms208.34 ± (206.55 - 210.12) ms+0.3%✅⬆️
process.time_to_main_ms515.64 ± (514.46 - 516.83) ms515.70 ± (514.49 - 516.90) ms+0.0%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed51.66 ± (51.63 - 51.68) MB51.59 ± (51.56 - 51.62) MB-0.1%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.0%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms19.94 ± (19.86 - 20.01) ms20.26 ± (20.19 - 20.34) ms+1.6%✅⬆️
process.time_to_main_ms75.03 ± (74.71 - 75.35) ms77.48 ± (77.06 - 77.91) ms+3.3%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.68 ± (7.68 - 7.69) MB7.65 ± (7.65 - 7.66) MB-0.4%
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms20.16 ± (20.09 - 20.23) ms19.95 ± (19.88 - 20.02) ms-1.0%
process.time_to_main_ms77.82 ± (77.44 - 78.20) ms76.61 ± (76.23 - 77.00) ms-1.5%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.72 ± (7.71 - 7.72) MB7.71 ± (7.70 - 7.71) MB-0.2%
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms191.08 ± (190.09 - 192.07) ms194.43 ± (193.44 - 195.43) ms+1.8%✅⬆️
process.time_to_main_ms492.25 ± (491.28 - 493.22) ms493.21 ± (491.95 - 494.47) ms+0.2%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed38.90 ± (38.86 - 38.94) MB39.06 ± (39.03 - 39.10) MB+0.4%✅⬆️
runtime.dotnet.threads.count27 ± (27 - 27)27 ± (27 - 27)+0.2%✅⬆️

HttpMessageHandler

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration192.93 ± (193.01 - 194.10) ms193.89 ± (193.96 - 194.87) ms+0.5%✅⬆️
.NET Framework 4.8 - Bailout
duration196.04 ± (195.90 - 196.63) ms196.59 ± (196.38 - 196.84) ms+0.3%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1170.86 ± (1172.20 - 1181.14) ms1166.34 ± (1168.44 - 1176.44) ms-0.4%
.NET Core 3.1 - Baseline
process.internal_duration_ms187.48 ± (187.12 - 187.85) ms188.14 ± (187.84 - 188.44) ms+0.3%✅⬆️
process.time_to_main_ms80.37 ± (80.13 - 80.61) ms80.57 ± (80.41 - 80.73) ms+0.3%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.05 ± (16.02 - 16.08) MB16.09 ± (16.06 - 16.12) MB+0.3%✅⬆️
runtime.dotnet.threads.count20 ± (19 - 20)20 ± (20 - 20)+0.4%✅⬆️
.NET Core 3.1 - Bailout
process.internal_duration_ms187.18 ± (186.82 - 187.53) ms187.60 ± (187.22 - 187.98) ms+0.2%✅⬆️
process.time_to_main_ms81.78 ± (81.64 - 81.93) ms82.20 ± (82.03 - 82.36) ms+0.5%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.15 ± (16.12 - 16.18) MB16.19 ± (16.16 - 16.22) MB+0.2%✅⬆️
runtime.dotnet.threads.count21 ± (20 - 21)21 ± (21 - 21)+0.6%✅⬆️
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms396.14 ± (393.55 - 398.72) ms392.93 ± (390.57 - 395.28) ms-0.8%
process.time_to_main_ms517.42 ± (516.75 - 518.10) ms516.20 ± (515.56 - 516.84) ms-0.2%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed62.90 ± (62.74 - 63.05) MB62.62 ± (62.46 - 62.77) MB-0.4%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)-0.1%
.NET 6 - Baseline
process.internal_duration_ms192.11 ± (191.66 - 192.55) ms193.01 ± (192.65 - 193.37) ms+0.5%✅⬆️
process.time_to_main_ms69.98 ± (69.81 - 70.16) ms69.99 ± (69.84 - 70.14) ms+0.0%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.05 ± (15.90 - 16.20) MB16.03 ± (15.89 - 16.17) MB-0.1%
runtime.dotnet.threads.count18 ± (18 - 19)19 ± (18 - 19)+2.1%✅⬆️
.NET 6 - Bailout
process.internal_duration_ms191.29 ± (190.95 - 191.63) ms191.68 ± (191.32 - 192.04) ms+0.2%✅⬆️
process.time_to_main_ms70.72 ± (70.62 - 70.82) ms70.84 ± (70.73 - 70.96) ms+0.2%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.25 ± (16.13 - 16.37) MB16.09 ± (15.95 - 16.23) MB-1.0%
runtime.dotnet.threads.count20 ± (20 - 20)19 ± (19 - 20)-2.4%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms408.11 ± (405.28 - 410.93) ms409.23 ± (406.29 - 412.17) ms+0.3%✅⬆️
process.time_to_main_ms487.36 ± (486.69 - 488.02) ms483.08 ± (482.49 - 483.68) ms-0.9%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed62.02 ± (61.87 - 62.17) MB62.09 ± (61.95 - 62.23) MB+0.1%✅⬆️
runtime.dotnet.threads.count29 ± (29 - 30)29 ± (29 - 30)-0.1%
.NET 8 - Baseline
process.internal_duration_ms189.62 ± (189.27 - 189.97) ms190.29 ± (189.93 - 190.65) ms+0.4%✅⬆️
process.time_to_main_ms69.06 ± (68.87 - 69.25) ms69.25 ± (69.03 - 69.46) ms+0.3%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.77 ± (11.75 - 11.80) MB11.77 ± (11.74 - 11.80) MB-0.0%
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)+0.3%✅⬆️
.NET 8 - Bailout
process.internal_duration_ms188.77 ± (188.56 - 188.98) ms189.32 ± (189.03 - 189.60) ms+0.3%✅⬆️
process.time_to_main_ms70.00 ± (69.90 - 70.09) ms70.16 ± (70.04 - 70.28) ms+0.2%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.83 ± (11.78 - 11.88) MB11.79 ± (11.71 - 11.86) MB-0.4%
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)-0.2%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms361.65 ± (360.22 - 363.07) ms362.76 ± (361.18 - 364.34) ms+0.3%✅⬆️
process.time_to_main_ms466.05 ± (465.35 - 466.75) ms457.81 ± (457.00 - 458.62) ms-1.8%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed50.26 ± (50.21 - 50.30) MB50.31 ± (50.27 - 50.35) MB+0.1%✅⬆️
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.0%✅⬆️
Comparison explanation

Execution-time benchmarks measure the whole time it takes to execute a program, and are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are highlighted in **red**. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

Duration charts
FakeDbCommand (.NET Framework 4.8)
gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7798) - mean (75ms)  : 71, 79
    master - mean (76ms)  : 70, 81

    section Bailout
    This PR (7798) - mean (81ms)  : 75, 87
    master - mean (80ms)  : 75, 85

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (1,146ms)  : 1064, 1228
    master - mean (1,136ms)  : 1035, 1237

Loading
FakeDbCommand (.NET Core 3.1)
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7798) - mean (122ms)  : 110, 134
    master - mean (118ms)  : 112, 125

    section Bailout
    This PR (7798) - mean (122ms)  : 114, 129
    master - mean (118ms)  : 111, 124

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (816ms)  : 781, 850
    master - mean (806ms)  : 769, 842

Loading
FakeDbCommand (.NET 6)
gantt
    title Execution time (ms) FakeDbCommand (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7798) - mean (107ms)  : 99, 115
    master - mean (105ms)  : 96, 113

    section Bailout
    This PR (7798) - mean (109ms)  : 101, 117
    master - mean (105ms)  : 100, 111

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (762ms)  : 705, 819
    master - mean (755ms)  : 715, 795

Loading
FakeDbCommand (.NET 8)
gantt
    title Execution time (ms) FakeDbCommand (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7798) - mean (107ms)  : 97, 117
    master - mean (103ms)  : 98, 109

    section Bailout
    This PR (7798) - mean (105ms)  : 98, 113
    master - mean (107ms)  : 99, 114

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (719ms)  : 686, 752
    master - mean (717ms)  : 690, 743

Loading
HttpMessageHandler (.NET Framework 4.8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7798) - mean (194ms)  : 189, 199
    master - mean (194ms)  : 187, 200

    section Bailout
    This PR (7798) - mean (197ms)  : 194, 199
    master - mean (196ms)  : 193, 200

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (1,172ms)  : 1116, 1229
    master - mean (1,177ms)  : 1113, 1240

Loading
HttpMessageHandler (.NET Core 3.1)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7798) - mean (277ms)  : 273, 281
    master - mean (276ms)  : 271, 281

    section Bailout
    This PR (7798) - mean (278ms)  : 273, 282
    master - mean (277ms)  : 273, 281

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (939ms)  : 898, 980
    master - mean (943ms)  : 895, 992

Loading
HttpMessageHandler (.NET 6)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7798) - mean (271ms)  : 266, 275
    master - mean (270ms)  : 264, 276

    section Bailout
    This PR (7798) - mean (271ms)  : 266, 275
    master - mean (270ms)  : 266, 274

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (923ms)  : 875, 970
    master - mean (926ms)  : 872, 981

Loading
HttpMessageHandler (.NET 8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7798) - mean (269ms)  : 263, 275
    master - mean (268ms)  : 264, 273

    section Bailout
    This PR (7798) - mean (269ms)  : 265, 272
    master - mean (268ms)  : 265, 271

    section CallTarget+Inlining+NGEN
    This PR (7798) - mean (851ms)  : 833, 869
    master - mean (860ms)  : 838, 882

Loading

@pr-commenter
Copy link

pr-commenter bot commented Nov 10, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7798 compared to master:

  • All benchmarks have the same speed
  • 3 benchmarks have fewer allocations
  • 10 benchmarks have more allocations

The following thresholds were used for comparing the benchmark speeds:

  • Mann–Whitney U test with statistical test for significance of 5%
  • Only results indicating a difference greater than 10% and 0.3 ns are considered.

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.ActivityBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7798

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 5.64 KB 5.73 KB 91 B 1.61%
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.06 KB 6.13 KB 70 B 1.16%
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net6.0 5.5 KB 5.53 KB 31 B 0.56%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.8μs 56.8ns 284ns 0 0 0 5.5 KB
master StartStopWithChild netcoreapp3.1 14.1μs 68.2ns 273ns 0 0 0 5.64 KB
master StartStopWithChild net472 22.8μs 124ns 688ns 1.03 0.31 0.103 6.06 KB
#7798 StartStopWithChild net6.0 11μs 60.4ns 342ns 0 0 0 5.53 KB
#7798 StartStopWithChild netcoreapp3.1 13.6μs 70.1ns 313ns 0 0 0 5.73 KB
#7798 StartStopWithChild net472 21.3μs 121ns 800ns 0.873 0.327 0 6.13 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 931μs 137ns 493ns 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.04ms 292ns 1.09μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.21ms 836ns 3.13μs 0 0 0 3.31 KB
#7798 WriteAndFlushEnrichedTraces net6.0 948μs 113ns 390ns 0 0 0 2.7 KB
#7798 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 151ns 524ns 0 0 0 2.7 KB
#7798 WriteAndFlushEnrichedTraces net472 1.22ms 2.81μs 10.9μs 0 0 0 3.31 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 1.07μs 6ns 38.4ns 0 0 0 1.22 KB
master AllCycleSimpleBody netcoreapp3.1 1.4μs 7.78ns 44ns 0 0 0 1.2 KB
master AllCycleSimpleBody net472 1.04μs 0.458ns 1.71ns 0.191 0 0 1.23 KB
master AllCycleMoreComplexBody net6.0 7.24μs 35.2ns 149ns 0 0 0 4.72 KB
master AllCycleMoreComplexBody netcoreapp3.1 8.87μs 45.4ns 208ns 0 0 0 4.62 KB
master AllCycleMoreComplexBody net472 7.76μs 2.61ns 9.77ns 0.741 0 0 4.74 KB
master ObjectExtractorSimpleBody net6.0 319ns 1.58ns 7.26ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 400ns 2.08ns 10ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 297ns 0.0475ns 0.184ns 0.044 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.37μs 7.77ns 30.1ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.83μs 37.6ns 145ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.68μs 2.07ns 8ns 0.603 0 0 3.8 KB
#7798 AllCycleSimpleBody net6.0 1.09μs 6.2ns 43ns 0 0 0 1.22 KB
#7798 AllCycleSimpleBody netcoreapp3.1 1.41μs 7.62ns 45.1ns 0 0 0 1.2 KB
#7798 AllCycleSimpleBody net472 1μs 0.409ns 1.42ns 0.191 0 0 1.23 KB
#7798 AllCycleMoreComplexBody net6.0 7.07μs 34.8ns 160ns 0 0 0 4.72 KB
#7798 AllCycleMoreComplexBody netcoreapp3.1 9.04μs 39.9ns 149ns 0 0 0 4.62 KB
#7798 AllCycleMoreComplexBody net472 7.61μs 3.05ns 11.8ns 0.724 0 0 4.74 KB
#7798 ObjectExtractorSimpleBody net6.0 311ns 1.71ns 10.3ns 0 0 0 280 B
#7798 ObjectExtractorSimpleBody netcoreapp3.1 406ns 2.15ns 11.6ns 0 0 0 272 B
#7798 ObjectExtractorSimpleBody net472 301ns 0.0422ns 0.152ns 0.0439 0 0 281 B
#7798 ObjectExtractorMoreComplexBody net6.0 6.37μs 30.5ns 126ns 0 0 0 3.78 KB
#7798 ObjectExtractorMoreComplexBody netcoreapp3.1 7.83μs 36.8ns 147ns 0 0 0 3.69 KB
#7798 ObjectExtractorMoreComplexBody net472 6.7μs 2.04ns 7.9ns 0.57 0 0 3.8 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 76.6μs 162ns 628ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 96.9μs 283ns 1.1μs 0 0 0 32.4 KB
master EncodeArgs net472 109μs 49.3ns 191ns 4.92 0 0 32.51 KB
master EncodeLegacyArgs net6.0 146μs 53.5ns 207ns 0 0 0 2.15 KB
master EncodeLegacyArgs netcoreapp3.1 197μs 208ns 806ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 262μs 119ns 460ns 0 0 0 2.16 KB
#7798 EncodeArgs net6.0 76.9μs 177ns 687ns 0 0 0 32.4 KB
#7798 EncodeArgs netcoreapp3.1 96.2μs 255ns 919ns 0 0 0 32.4 KB
#7798 EncodeArgs net472 110μs 14.4ns 53.9ns 4.93 0 0 32.5 KB
#7798 EncodeLegacyArgs net6.0 144μs 11.7ns 42.1ns 0 0 0 2.15 KB
#7798 EncodeLegacyArgs netcoreapp3.1 199μs 235ns 909ns 0 0 0 2.14 KB
#7798 EncodeLegacyArgs net472 264μs 72.2ns 279ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 392μs 38.3ns 148ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 850μs 3.84μs 14.9μs 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 433μs 64.1ns 240ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 283μs 11ns 41.3ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 295μs 124ns 429ns 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 309μs 29.6ns 115ns 0 0 0 2.29 KB
#7798 RunWafRealisticBenchmark net6.0 394μs 51.3ns 178ns 0 0 0 4.55 KB
#7798 RunWafRealisticBenchmark netcoreapp3.1 850μs 5.43μs 53.7μs 0 0 0 4.48 KB
#7798 RunWafRealisticBenchmark net472 428μs 68.7ns 266ns 0 0 0 4.66 KB
#7798 RunWafRealisticBenchmarkWithAttack net6.0 286μs 16.5ns 57ns 0 0 0 2.24 KB
#7798 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 303μs 37.8ns 136ns 0 0 0 2.22 KB
#7798 RunWafRealisticBenchmarkWithAttack net472 309μs 27.2ns 106ns 0 0 0 2.29 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 61.5μs 71.3ns 267ns 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 72.3μs 67.8ns 254ns 0 0 0 17.42 KB
master SendRequest net472 0.00183ns 0.00127ns 0.00491ns 0 0 0 0 b
#7798 SendRequest net6.0 60.1μs 122ns 472ns 0 0 0 14.52 KB
#7798 SendRequest netcoreapp3.1 72μs 51.7ns 186ns 0 0 0 17.42 KB
#7798 SendRequest net472 0.00278ns 0.00143ns 0.00552ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7798

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net472 0 b 73 B 73 B
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net472 0 b 48 B 48 B
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 1 B 4 B 3 B 300.00%

Fewer allocations 🎉 in #7798

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 4 B 2 B -2 B -50.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 1.88ms 3.05μs 11.8μs 0 0 0 640.01 KB
master OriginalCharSlice netcoreapp3.1 2.11ms 4.21μs 16.3μs 0 0 0 640 KB
master OriginalCharSlice net472 2.68ms 272ns 1.05μs 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.37ms 135ns 507ns 0 0 0 4 B
master OptimizedCharSlice netcoreapp3.1 1.69ms 399ns 1.54μs 0 0 0 1 B
master OptimizedCharSlice net472 1.95ms 233ns 903ns 0 0 0 0 b
master OptimizedCharSliceWithPool net6.0 874μs 69.5ns 260ns 0 0 0 1 B
master OptimizedCharSliceWithPool netcoreapp3.1 829μs 71.1ns 256ns 0 0 0 0 b
master OptimizedCharSliceWithPool net472 1.2ms 280ns 1.08μs 0 0 0 0 b
#7798 OriginalCharSlice net6.0 1.95ms 5.62μs 21.7μs 0 0 0 640.01 KB
#7798 OriginalCharSlice netcoreapp3.1 2.1ms 2.09μs 7.83μs 0 0 0 640 KB
#7798 OriginalCharSlice net472 2.83ms 585ns 2.11μs 100 0 0 641.95 KB
#7798 OptimizedCharSlice net6.0 1.45ms 398ns 1.54μs 0 0 0 2 B
#7798 OptimizedCharSlice netcoreapp3.1 1.66ms 652ns 3.8μs 0 0 0 1 B
#7798 OptimizedCharSlice net472 1.99ms 585ns 2.27μs 0 0 0 73 B
#7798 OptimizedCharSliceWithPool net6.0 812μs 30ns 108ns 0 0 0 4 B
#7798 OptimizedCharSliceWithPool netcoreapp3.1 797μs 82.8ns 321ns 0 0 0 0 b
#7798 OptimizedCharSliceWithPool net472 1.17ms 97.5ns 378ns 0 0 0 48 B
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7798

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 42.38 KB 41.76 KB -618 B -1.46%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 765μs 3.49μs 13μs 0 0 0 42.38 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 676μs 2.61μs 19.2μs 0 0 0 41.88 KB
master WriteAndFlushEnrichedTraces net472 957μs 4.68μs 20.9μs 4.81 0 0 56.3 KB
#7798 WriteAndFlushEnrichedTraces net6.0 696μs 2.93μs 11.3μs 0 0 0 41.76 KB
#7798 WriteAndFlushEnrichedTraces netcoreapp3.1 664μs 2.01μs 7.78μs 0 0 0 42.02 KB
#7798 WriteAndFlushEnrichedTraces net472 923μs 4.06μs 15.2μs 8.93 0 0 56.47 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 2μs 2.23ns 8.33ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.7μs 4.29ns 16.1ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.81μs 3.78ns 14.6ns 0.155 0.0141 0 987 B
#7798 ExecuteNonQuery net6.0 1.86μs 1.8ns 6.48ns 0 0 0 1.02 KB
#7798 ExecuteNonQuery netcoreapp3.1 2.71μs 10.5ns 40.6ns 0 0 0 1.02 KB
#7798 ExecuteNonQuery net472 2.93μs 4.69ns 18.2ns 0.146 0.0146 0 987 B
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.67μs 9.01ns 49.3ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.27μs 1.34ns 5ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.47μs 3.16ns 12.3ns 0.156 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.88μs 6.98ns 27ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.45μs 11ns 42.6ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.69μs 1.72ns 6.44ns 0.166 0 0 1.1 KB
#7798 CallElasticsearch net6.0 1.7μs 3.56ns 13.8ns 0 0 0 1.03 KB
#7798 CallElasticsearch netcoreapp3.1 2.2μs 10.5ns 40.8ns 0 0 0 1.03 KB
#7798 CallElasticsearch net472 3.49μs 1.24ns 4.46ns 0.158 0 0 1.04 KB
#7798 CallElasticsearchAsync net6.0 1.82μs 3.31ns 12.8ns 0 0 0 1.01 KB
#7798 CallElasticsearchAsync netcoreapp3.1 2.43μs 11ns 42.7ns 0 0 0 1.08 KB
#7798 CallElasticsearchAsync net472 3.63μs 2.96ns 11.5ns 0.163 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.85μs 9.2ns 41.2ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.5μs 9.47ns 36.7ns 0 0 0 952 B
master ExecuteAsync net472 2.7μs 4.34ns 16.8ns 0.135 0 0 915 B
#7798 ExecuteAsync net6.0 1.93μs 2ns 7.75ns 0 0 0 952 B
#7798 ExecuteAsync netcoreapp3.1 2.4μs 9.87ns 38.2ns 0 0 0 952 B
#7798 ExecuteAsync net472 2.6μs 3.83ns 14.8ns 0.144 0 0 915 B
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 6.69μs 14.9ns 57.8ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.71μs 23.7ns 82.2ns 0 0 0 2.9 KB
master SendAsync net472 12.5μs 12.9ns 49.9ns 0.498 0 0 3.18 KB
#7798 SendAsync net6.0 6.99μs 13.4ns 51.8ns 0 0 0 2.36 KB
#7798 SendAsync netcoreapp3.1 8.68μs 21.3ns 82.4ns 0 0 0 2.9 KB
#7798 SendAsync net472 12.1μs 9.07ns 32.7ns 0.483 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7798

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 57.34 KB 65.54 KB 8.19 KB 14.29%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 42.64 KB 45.53 KB 2.89 KB 6.77%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 43.14 KB 44.34 KB 1.2 KB 2.78%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 254.57 KB 256.23 KB 1.66 KB 0.65%

Fewer allocations 🎉 in #7798

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 276.5 KB 249.13 KB -27.38 KB -9.90%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 42.1μs 210ns 864ns 0 0 0 43.14 KB
master StringConcatBenchmark netcoreapp3.1 50.3μs 287ns 2.58μs 0 0 0 42.64 KB
master StringConcatBenchmark net472 56.5μs 270ns 1.04μs 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 477μs 1.51μs 5.46μs 0 0 0 276.5 KB
master StringConcatAspectBenchmark netcoreapp3.1 494μs 1.68μs 6.04μs 0 0 0 254.57 KB
master StringConcatAspectBenchmark net472 407μs 2.13μs 10.8μs 0 0 0 278.53 KB
#7798 StringConcatBenchmark net6.0 44.4μs 262ns 2.4μs 0 0 0 44.34 KB
#7798 StringConcatBenchmark netcoreapp3.1 50μs 309ns 3.03μs 0 0 0 45.53 KB
#7798 StringConcatBenchmark net472 56.1μs 171ns 641ns 0 0 0 65.54 KB
#7798 StringConcatAspectBenchmark net6.0 436μs 1.11μs 4.01μs 0 0 0 249.13 KB
#7798 StringConcatAspectBenchmark netcoreapp3.1 512μs 2.07μs 7.73μs 0 0 0 256.23 KB
#7798 StringConcatAspectBenchmark net472 424μs 2.26μs 12μs 0 0 0 278.53 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.64μs 10.9ns 42ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.64μs 16ns 62.1ns 0 0 0 1.7 KB
master EnrichedLog net472 3.87μs 4.3ns 16.6ns 0.252 0 0 1.64 KB
#7798 EnrichedLog net6.0 2.68μs 5.94ns 23ns 0 0 0 1.7 KB
#7798 EnrichedLog netcoreapp3.1 3.58μs 14.4ns 55.6ns 0 0 0 1.7 KB
#7798 EnrichedLog net472 4.09μs 4.41ns 17.1ns 0.244 0 0 1.64 KB
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 124μs 70ns 262ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 127μs 213ns 738ns 0 0 0 4.31 KB
master EnrichedLog net472 169μs 55.1ns 206ns 0 0 0 4.52 KB
#7798 EnrichedLog net6.0 122μs 46.4ns 167ns 0 0 0 4.31 KB
#7798 EnrichedLog netcoreapp3.1 126μs 179ns 645ns 0 0 0 4.31 KB
#7798 EnrichedLog net472 166μs 97.7ns 378ns 0 0 0 4.51 KB
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 5.09μs 20ns 77.3ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.88μs 18.3ns 71ns 0 0 0 2.26 KB
master EnrichedLog net472 7.52μs 7.8ns 30.2ns 0.3 0 0 2.08 KB
#7798 EnrichedLog net6.0 5.08μs 7.03ns 26.3ns 0 0 0 2.26 KB
#7798 EnrichedLog netcoreapp3.1 6.83μs 19.9ns 77ns 0 0 0 2.26 KB
#7798 EnrichedLog net472 7.54μs 5.84ns 20.2ns 0.3 0 0 2.08 KB
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 2.08μs 8.84ns 34.2ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.62μs 12.2ns 47.2ns 0 0 0 1.2 KB
master SendReceive net472 3.01μs 4.12ns 16ns 0.181 0 0 1.2 KB
#7798 SendReceive net6.0 1.92μs 1.58ns 6.14ns 0 0 0 1.2 KB
#7798 SendReceive netcoreapp3.1 2.61μs 6.79ns 26.3ns 0 0 0 1.2 KB
#7798 SendReceive net472 3.03μs 1.87ns 7.25ns 0.18 0 0 1.2 KB
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 4.35μs 11.9ns 46ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.76μs 3.84ns 14.4ns 0 0 0 1.63 KB
master EnrichedLog net472 6.66μs 11.9ns 46ns 0.301 0 0 2.03 KB
#7798 EnrichedLog net6.0 4.35μs 2.63ns 9.5ns 0 0 0 1.58 KB
#7798 EnrichedLog netcoreapp3.1 5.62μs 17.3ns 67.1ns 0 0 0 1.63 KB
#7798 EnrichedLog net472 6.66μs 5.99ns 22.4ns 0.296 0 0 2.03 KB
Benchmarks.Trace.SpanBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 777ns 0.35ns 1.31ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 1.01μs 0.635ns 2.46ns 0 0 0 576 B
master StartFinishSpan net472 964ns 0.266ns 1.03ns 0.0917 0 0 578 B
master StartFinishScope net6.0 967ns 0.271ns 1.05ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.21μs 1.71ns 6.64ns 0 0 0 696 B
master StartFinishScope net472 1.14μs 0.618ns 2.39ns 0.103 0 0 658 B
#7798 StartFinishSpan net6.0 798ns 0.21ns 0.814ns 0 0 0 576 B
#7798 StartFinishSpan netcoreapp3.1 967ns 5.07ns 23.8ns 0 0 0 576 B
#7798 StartFinishSpan net472 927ns 0.726ns 2.81ns 0.0885 0 0 578 B
#7798 StartFinishScope net6.0 926ns 3.74ns 14.5ns 0 0 0 696 B
#7798 StartFinishScope netcoreapp3.1 1.19μs 5.74ns 25ns 0 0 0 696 B
#7798 StartFinishScope net472 1.17μs 2.74ns 10.6ns 0.1 0 0 658 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 1.06μs 4.72ns 18.3ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.4μs 7.28ns 35.6ns 0 0 0 696 B
master RunOnMethodBegin net472 1.49μs 1.05ns 4.07ns 0.104 0 0 658 B
#7798 RunOnMethodBegin net6.0 1.05μs 5.5ns 23.3ns 0 0 0 696 B
#7798 RunOnMethodBegin netcoreapp3.1 1.45μs 7.04ns 29ns 0 0 0 696 B
#7798 RunOnMethodBegin net472 1.48μs 0.362ns 1.25ns 0.0981 0 0 658 B

@github-actions
Copy link
Contributor

Snapshots difference summary

The following differences have been observed in committed snapshots. It is meant to help the reviewer.
The diff is simplistic, so please check some files anyway while we improve it.

7 occurrences of :

+      peer.service: MyTableName,
[...]
+      _dd.peer.service.source: tablename

1 occurrences of :

+      peer.service: MyEventBus,
[...]
+      _dd.peer.service.source: rulename

2 occurrences of :

+      peer.service: MyStreamName,
[...]
+      _dd.peer.service.source: topicname

14 occurrences of :

+      peer.service: my-bucket,
[...]
+      _dd.peer.service.source: bucketname

4 occurrences of :

+      peer.service: MyTopic,
[...]
+      _dd.peer.service.source: topicname

2 occurrences of :

+      peer.service: StepFunction,
[...]
+      _dd.peer.service.source: statemachinename

@lucaspimentel lucaspimentel changed the title Implement Serverless Service Representation Implement Serverless Service Representation in AWS Lambda Nov 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants